package com.zhonghui.wms.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhonghui.common.annotation.Excel;
import com.zhonghui.common.core.domain.BaseEntity;
import com.zhonghui.wms.domain.WmsDistributionDetails;
import com.zhonghui.wms.domain.WmsVehicleSchedulingDetails;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;
import java.util.List;

/**
 * 智能仓储WMS-运输管理-配送管理对象 wms_distribution
 *
 * @author zhonghui
 * @date 2022-05-24
 */
@ApiModel("智能仓储WMS-运输管理-配送管理对象")
public class WmsDistributionVo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 编号 */
    @ApiModelProperty("编号")
    private Long id;

    /** 单据号 */
    @Excel(name = "单据号")
    @ApiModelProperty("单据号")
    private String documentNo;

    /** 车辆调度id */
    @Excel(name = "车辆调度id")
    @ApiModelProperty("车辆调度id")
    private Long vehicleId;

    /** 调度单号 */
    @Excel(name = "调度单号")
    @ApiModelProperty("调度单号")
    private String vehicleNo;

    /** 车牌号 */
    @Excel(name = "车牌号")
    @ApiModelProperty("车牌号")
    private String carNumber;

    /** 司机 */
    @Excel(name = "司机")
    @ApiModelProperty("司机")
    private String driver;

    /** 司机联系电话 */
    @Excel(name = "司机联系电话")
    @ApiModelProperty("司机联系电话")
    private String driverPhone;

    /** 配送状态 */
    @Excel(name = "配送状态")
    @ApiModelProperty("配送状态")
    private Long deliveryStatus;

    /** 配送时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "配送时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("配送时间")
    private Date deliveryTime;

    /** 到达时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "到达时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("到达时间")
    private Date arrivalTime;

    /** 客户ID */
    @Excel(name = "客户ID")
    @ApiModelProperty("客户ID")
    private Long customId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty("客户名称")
    private String customName;

    /** 联系人 */
    @Excel(name = "联系人")
    @ApiModelProperty("联系人")
    private String linkman;

    /** 联系人电话 */
    @Excel(name = "联系人电话")
    @ApiModelProperty("联系人电话")
    private String linkmanPhoneNumber;

    /** 配送地址 */
    @Excel(name = "配送地址")
    @ApiModelProperty("配送地址")
    private String deliveryAddress;

    /** 发货地址 */
    @Excel(name = "发货地址")
    @ApiModelProperty("发货地址")
    private String shippingAddress;

    /** 智能仓储WMS-运输管理-车辆调度明细信息 */
    @ApiModelProperty("运输管理-车辆调度明细信息")
    private List<WmsVehicleSchedulingDetails> wmsVehicleSchedulingDetailsList;

    /** 智能仓储WMS-运输管理-配送管理明细信息 */
    @ApiModelProperty("运输管理-配送管理明细信息")
    private List<WmsDistributionDetails> wmsDistributionDetailsList;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setDocumentNo(String documentNo)
    {
        this.documentNo = documentNo;
    }

    public String getDocumentNo()
    {
        return documentNo;
    }
    public void setVehicleId(Long vehicleId)
    {
        this.vehicleId = vehicleId;
    }

    public Long getVehicleId()
    {
        return vehicleId;
    }
    public void setCarNumber(String carNumber)
    {
        this.carNumber = carNumber;
    }

    public String getVehicleNo() {
        return vehicleNo;
    }

    public void setVehicleNo(String vehicleNo) {
        this.vehicleNo = vehicleNo;
    }

    public String getCarNumber()
    {
        return carNumber;
    }
    public void setDriver(String driver)
    {
        this.driver = driver;
    }

    public String getDriver()
    {
        return driver;
    }
    public void setDriverPhone(String driverPhone)
    {
        this.driverPhone = driverPhone;
    }

    public String getDriverPhone()
    {
        return driverPhone;
    }
    public void setDeliveryStatus(Long deliveryStatus)
    {
        this.deliveryStatus = deliveryStatus;
    }

    public Long getDeliveryStatus()
    {
        return deliveryStatus;
    }
    public void setDeliveryTime(Date deliveryTime)
    {
        this.deliveryTime = deliveryTime;
    }

    public Date getDeliveryTime()
    {
        return deliveryTime;
    }
    public void setArrivalTime(Date arrivalTime)
    {
        this.arrivalTime = arrivalTime;
    }

    public Date getArrivalTime()
    {
        return arrivalTime;
    }
    public void setCustomId(Long customId)
    {
        this.customId = customId;
    }

    public Long getCustomId()
    {
        return customId;
    }

    public String getCustomName() {
        return customName;
    }

    public void setCustomName(String customName) {
        this.customName = customName;
    }

    public String getLinkman() {
        return linkman;
    }

    public void setLinkman(String linkman) {
        this.linkman = linkman;
    }

    public String getLinkmanPhoneNumber() {
        return linkmanPhoneNumber;
    }

    public void setLinkmanPhoneNumber(String linkmanPhoneNumber) {
        this.linkmanPhoneNumber = linkmanPhoneNumber;
    }

    public void setDeliveryAddress(String deliveryAddress)
    {
        this.deliveryAddress = deliveryAddress;
    }

    public String getDeliveryAddress()
    {
        return deliveryAddress;
    }
    public void setShippingAddress(String shippingAddress)
    {
        this.shippingAddress = shippingAddress;
    }

    public String getShippingAddress()
    {
        return shippingAddress;
    }

    public List<WmsVehicleSchedulingDetails> getWmsVehicleSchedulingDetailsList() {
        return wmsVehicleSchedulingDetailsList;
    }

    public void setWmsVehicleSchedulingDetailsList(List<WmsVehicleSchedulingDetails> wmsVehicleSchedulingDetailsList) {
        this.wmsVehicleSchedulingDetailsList = wmsVehicleSchedulingDetailsList;
    }

    public List<WmsDistributionDetails> getWmsDistributionDetailsList()
    {
        return wmsDistributionDetailsList;
    }

    public void setWmsDistributionDetailsList(List<WmsDistributionDetails> wmsDistributionDetailsList)
    {
        this.wmsDistributionDetailsList = wmsDistributionDetailsList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("documentNo", getDocumentNo())
                .append("vehicleId", getVehicleId())
                .append("carNumber", getCarNumber())
                .append("driver", getDriver())
                .append("driverPhone", getDriverPhone())
                .append("deliveryStatus", getDeliveryStatus())
                .append("deliveryTime", getDeliveryTime())
                .append("arrivalTime", getArrivalTime())
                .append("customId", getCustomId())
                .append("deliveryAddress", getDeliveryAddress())
                .append("shippingAddress", getShippingAddress())
                .append("remark", getRemark())
                .append("wmsDistributionDetailsList", getWmsDistributionDetailsList())
                .toString();
    }
}
